<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>

</head>
<body>
indexdb学习

</body>
<script type="text/javascript">

  // 获取indexdb对象,为了兼容性的写法
  // 1、获取对象
  window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
  window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction;
  window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange;
  window.IDBCursor = window.IDBCursor || window.webkitIDBCursor || window.msIDBCursor;

  // 2、定义数据库的基本信息
  var dbInfo = {
    dbName: 'aptdb',
    dbVersion: 2020, //用小数会四舍五入，版本号只能越来越大
    dbInstance: {},
  };

  // 3、创建数据库
  var dbContent = window.indexedDB.open(dbInfo.dbName, dbInfo.dbVersion);

  // 数据库版本号更新了
  dbContent.onupgradeneeded = function (e) {
    console.log("数据库版本号修改了");

    // 4、创建数据库store(表)
    var _db = e.target.result;
    var storeNames = _db.objectStoreNames;

    if (!storeNames.contains("cart")) {
      _db.createObjectStore("cart", {
        keyPath: "goodsId",
        autoIncrement: true
      });
    }
  }
  // 数据库链接成功
  dbContent.onsuccess = function (e) {
    console.log("数据库链接成功");
    // 5、增删改查操作
    var _db = e.target.result;
    var trans = _db.transaction(["cart"], "readwrite")
    var store = trans.objectStore("cart")

    // 增加数据
//    var req=store.add({
//      goodsId:'df',
//      prise:12.3,
//      name:"衣服",
//      size:"M"
//    })

    // 修改数据
//    var req = store.put({
//      goodsId: 'df',
//      prise: 12.3,
//      name: "衣服",
//      size: "L"
//    })

    // 删除数据
//    var req = store.delete("df ");

    // 查询数据
//    var req = store.get("df");

    // 删除所有数据
      var req = store.clear();


//    req.onsuccess = function (e) {
//      console.log(e.target.result);
//      console.log("数据添加成功");
//    }
//    req.onerror = function (e) {
//      console.log("数据添加失败" + e);
//    }


    // 查询所有数据
//    var cursor=store.openCursor();
//    var data=[];
//
//    cursor.onsuccess=function(e){
//      var result = e.target.result;
//      if (result && result !== null) {
//        data.push(result.value);
//        result.continue();
//      }
//      console.log(data);
//    }
//    cursor.onerror=function(){
//
//    }

  }
  // 数据库链接失败
  dbContent.onerror = function (e) {
    alert("数据库链接失败");
  }


</script>
</html>
